package br.uff.es1.dao;

import br.uff.es1.Cupom;
import br.uff.es1.ItemPedido;
import br.uff.es1.Pedido;
import java.util.ArrayList;
import java.util.Date;

public class PedidoDAO {
    private ArrayList<Pedido> pedidos;

    public PedidoDAO() {
        this.pedidos = new ArrayList();
    }
    
    public int criarPedido(Date data, int idClient){
        Pedido pedido = new Pedido(data, idClient);
        if(pedido == null){
            return 0;
        }else{
            this.pedidos.add(pedido);
            return pedido.getNumNota();
        }
    }
    
    public Pedido obterPedido(int nota){
        for (int i = 0; i < this.pedidos.size(); i++) {
           if(this.pedidos.get(i).getNumNota() == nota){
               return this.pedidos.get(i);
           }            
        }
        return null;
    }
    
    public void adicionarCupomPedido(int numeroNota, Cupom cupom){
        this.pedidos.get(obterPedidoPeloNumero(numeroNota)).setCupom(cupom);
    }
    
    public boolean adicionarItemPedido(int numNota, ItemPedido item){
        for (int i = 0; i < this.pedidos.size(); i++) {
           if(this.pedidos.get(i).getNumNota() == numNota){
               this.pedidos.get(i).adicionarItem(item);
               return true;
           }            
        }
        return false;
    }
    
    public int obterPedidoPeloNumero(int numeroNota){
        for (int i = 0; i < this.pedidos.size(); i++) {
            if(this.pedidos.get(i).getNumNota() == numeroNota){
                return i;
            }
        }
        return -1;
    }
    
    public ArrayList<Pedido> obterTodos(){
        return this.pedidos;
    }
    
    public boolean remover(int numNota){
        for (int i = 0; i < this.pedidos.size(); i++) {
            if(this.pedidos.get(i).getNumNota() == numNota){
                this.pedidos.remove(i);
                return true;
            }   
        }
        return false;
    }
    
}
